package com.shuda.business.monitor.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;

import java.time.LocalDateTime;

/**
 * 监控告警配置DTO类
 */
@Schema(name = "MonitorAlertConfigDTO", description = "监控告警配置DTO")
public class MonitorAlertConfigDTO {

    @Schema(description = "配置ID")
    private Long id;

    @Schema(description = "告警名称")
    private String alertName;

    @Schema(description = "告警类型(success_rate-成功率,processing_time-处理时间,exception_count-异常数量,data_volume-数据量)")
    private String alertType;

    @Schema(description = "告警阈值")
    private String threshold;

    @Schema(description = "告警级别(info-信息,warning-警告,critical-严重)")
    private String alertLevel;

    @Schema(description = "告警方式(email-邮件,sms-短信,webhook-接口)")
    private String alertMethod;

    @Schema(description = "告警接收人")
    private String alertRecipients;

    @Schema(description = "是否启用")
    private Boolean enabled;

    @Schema(description = "描述")
    private String description;

    @Schema(description = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /** 配置ID */
    public Long getId() { return id; }
    /** 设置配置ID */
    public void setId(Long id) { this.id = id; }

    /** 告警名称 */
    public String getAlertName() { return alertName; }
    /** 设置告警名称 */
    public void setAlertName(String alertName) { this.alertName = alertName; }

    /** 告警类型 */
    public String getAlertType() { return alertType; }
    /** 设置告警类型 */
    public void setAlertType(String alertType) { this.alertType = alertType; }

    /** 告警阈值 */
    public String getThreshold() { return threshold; }
    /** 设置告警阈值 */
    public void setThreshold(String threshold) { this.threshold = threshold; }

    /** 告警级别 */
    public String getAlertLevel() { return alertLevel; }
    /** 设置告警级别 */
    public void setAlertLevel(String alertLevel) { this.alertLevel = alertLevel; }

    /** 告警方式 */
    public String getAlertMethod() { return alertMethod; }
    /** 设置告警方式 */
    public void setAlertMethod(String alertMethod) { this.alertMethod = alertMethod; }

    /** 告警接收人 */
    public String getAlertRecipients() { return alertRecipients; }
    /** 设置告警接收人 */
    public void setAlertRecipients(String alertRecipients) { this.alertRecipients = alertRecipients; }

    /** 是否启用 */
    public Boolean getEnabled() { return enabled; }
    /** 设置是否启用 */
    public void setEnabled(Boolean enabled) { this.enabled = enabled; }

    /** 描述 */
    public String getDescription() { return description; }
    /** 设置描述 */
    public void setDescription(String description) { this.description = description; }

    /** 创建时间 */
    public LocalDateTime getCreateTime() { return createTime; }
    /** 设置创建时间 */
    public void setCreateTime(LocalDateTime createTime) { this.createTime = createTime; }

    /** 更新时间 */
    public LocalDateTime getUpdateTime() { return updateTime; }
    /** 设置更新时间 */
    public void setUpdateTime(LocalDateTime updateTime) { this.updateTime = updateTime; }
}